Блог им. 3Qu |Проектирование ТС. 4. Машинное обучение.

    • 31 августа 2021, 15:40
    • |
    • 3Qu
  • Еще

Ещё с самого начала, в первой части, писал, что проект является экспериментальным, что из него получится я не знаю.Получится — хорошо, не получится — останутся наработки, которые могут пригодиться в дальнейшем.Тем не менее, обещал освещать ход проекта.
На сегодняшний день удалось получить на тестах некоторую незначительную и неустойчивую прибыль. Эти копейки не произведут впечатления на читателя — такое вы и сами получали неоднократно. Даж позориться не хочется.)
Но, что это дало? Это позволило алгоритмически более-менее разграничить области возможных лонгов и шортов.
Дальше есть следующие возможности:
а. Накручивать на ТС различные индикаторы и долго и нудно подбирать их параметры и условия входа в сделку и соответствующую логику.
в. Попробовать использовать для построения ТС методы машинного обучения (МО. Тем более, какие-то наработки в этой области у меня уже есть.
«И так как с детства его влекло к технике, то он всею душою отдался пункту «в» (тайное похищение чужого имущества, совершенное с применением технических средств или неоднократно».© Пункт «в» мне тоже более интересен, однако я совсем не исключаю и параллельного применения элементов из пункта «а».
Для тех, кто не в теме, немного подробней.
Если мы возьмём рыночные данные, каким-то образом их идеально подготовим, попробуем обучить какое нибудь МО (нейросеть (НС), скажем), то мы, скорее всего, сразу получим великолепные результаты. Единственным недостатком этих результатов будет то, что прибыль мы сможем получить только на той истории, на которой мы обучали МО. На реале и даже на другом отрезке истории такая ТС работать скорее всего не будет.
Рыночные зависимости очень неявные, встречаются в ценовом ряду нечасто и выделить их на общем фоне удачных и неудачных сделок не представляется возможным. В результате МО при обучении находит некоторые зависимости или псевдозависимости имеющиеся только в обучающей последовательности, нигде более не встречающиеся и обучается им. Т.е., псевдозависимости оказываются более явными, чем то что мы пытаемся найти.
Как с этим планируется бороться, это, возможно, обсудим уже в следующий раз.


Блог им. 3Qu |Проектирование ТС. 1

    • 15 августа 2021, 18:09
    • |
    • 3Qu
  • Еще
Обещал в Процесс рождения интрадей Грааля пошагово освещать процесс проектирования торговой системы — освещаю).
Итак, первым делом скачал с Финам 1м котировки нескольких фьючерсов за 3 последних месяца перед экспирацией и поместил их в БД SQLite — так проще работать. Код экспорта из CSV в SQLite приводил ранее, см. раздел Python моего блога.
Вот эти:

1 GAZR-6.21 GZM1
2 GAZR-9.21 GZU1
3 SBRF-6.21 SRM1
4 SBRF-9.21 SRU1
5 Si-6.21 SiM1
6 Si-9.21 SiU1
С фьючем РТС работать и отрабатывать технологии сложнее, если и нужен будет, то оч нескоро.
У меня заготовлено несколько новых индикаторов для этой ТС. Конечно я на что-то рассчитывал при их проектировании, но все это умозрительно, и о реальных свойствах индикаторов я, ровным счетом, ничего не знаю. Для начала хотелось бы выяснить их возможности.
Для этого на множестве 1м истории (~66000 свечей) генерируем ~6600 равномерно распределенных по интервалу истории случайных сделок продолжительностью 5 минут ( потом будет и 10 и 15 минут), пока только Лонг (потом и Шорт будет, рассматривается отдельно) и находим прибыль в каждой из этих сделок.
Выглядеть это будет вот так:
Проектирование ТС. 1 



( Читать дальше )

Блог им. 3Qu |Через 5 минут прогноз рассыпается. (с)

    • 05 августа 2021, 20:38
    • |
    • 3Qu
  • Еще
Был у меня на днях диалог с одним нашим форумчанином, и сказал он с некоторым сожалением — через 5 минут прогноз рассыпается. ©
Вообще, я с этим вполне согласен, это действительно близко к истине. Однако,
во первых: 5-ти минут часто вполне достаточно для сделки,
во вторых: по ходу пьесы можно прогнозировать и дальше, на следующие 5 минут, и, если все ОК, продлевать сделку на следующие 5 минут, потом на следующие и так далее.
Таким образом, мы поимеем систему, в которой, да, основные сделки будут не более 5 минут, но будут присутствовать и сделки более продолжительные, до 15 минут и более.
Только скажу, что из этого может получиться оч неплохая и весьма прибыльная система.

Блог им. 3Qu |Windows 10, Python, Anaconda, Miniconda (топик для питоноводов).

    • 28 июня 2021, 23:13
    • |
    • 3Qu
  • Еще
Доконал я, таки, свою Windows 10, стала еле ползать. Вначале восстановил штатной системой восстановления — не понравилось. Тогда сделал чистую установку. Вроде нормально, полетела. Поставил VS 2019, и очередь дошла до Python — что ставить?
Уже несколько лет использую Python для всех задач анализа данных и моделирования торговых систем. До того использовал разное — Excel, MathLab, SciLab, R. Python, имхо, оказался наиболее удобным и быстрым инструментом для решения всех околорыночных задач.
В свое время долго выбирал среду под Python, и, в конце концов остановился на Anaconda. Это самое оно для начинающих — все сразу сконфигурировано и готово к употреблению, уже сразу в базе ~700 пакетов, и не надо заморачиваться с их установкой. Кроме того, уже готовы к употреблению несколько сред разработки, я пользуюсь только одной — Spyder — не то, чтобы другие хуже, просто потребности не возникало.
В общем, для тех, кто только начинает работать с Python или не хочет заморачиваться с пакетами и средами, Anaconda — самое оно.
Однако, есть и недостатки. Очень большой объем на диске, долго ставится. Все 700 пакетов вам никогда не понадобятся, и по любому, позднее какие-то пакеты вам все равно придется устанавливать самостоятельно. Множество сред разработки тоже никогда не понадобятся, однако, чтобы получить общее представление о том, что есть под Python, для начальных этапов не вредно.

( Читать дальше )

Блог им. 3Qu |Есть ли на рынке "закономерности"?

    • 16 апреля 2021, 19:53
    • |
    • 3Qu
  • Еще
Есть ли на рынке «закономерности»?
На СЛ часто публикуют топики о найденных на рынке «закономерностях» — свечной анализ, паттерны (до сих пор не знаю что это такое), индикаторные стратегии, всяческий ТА, Эллиоты и много чего еще, где с помощью палки и веревки пытаются найти «закономерности» и создать прибыльную торговую систему.
Скажу сразу, это все мартышкин труд, никаких «закономерностей» вы так не найдете. В принципе, на этом можно было бы и закончить топик, но можно попытаться ответить на вопрос — а почему это, мы, да не найдем?
Потому, что все ваши «закономерности» просты как ящик и могли бы быть выявлены практически мгновенно, если бы они реально существовали. Я даже не говорю о современных средствах типа нейросетей и прочего machine learning, а самыми обычными классическими средствами статистического и других видов анализа, известного максимум с начала 20-го века, м.б., кое что с 40-50 годов. Я повторю — практически мгновенно, любым желающим, знакомым с таким анализом.
Вы, вероятно, скажите — результаты скрываются. Их невозможно скрыть — результаты были бы общеизвестны практически мгновенно, и доказаны отнюдь не на отрезке графика, а полностью, и были бы воспроизводимы любым желающим.

( Читать дальше )

Блог им. 3Qu |Совершенствуем Exponential Moving Average (EMA). 2

    • 16 января 2021, 21:01
    • |
    • 3Qu
  • Еще
В топике Совершенствуем Exponential Moving Average (EMA) мы показали использование линейной и нелинейной обратных связей в применении к ЕМА. Как правильно отметили в части комментариев, в случае линейной обратной связи ЕМА просто превращается в другую ЕМА с меньшим периодом, и толку от такой ЕМА немного. И тем не менее, даже в этом случае, обратная связь демонстрирует то, что и должна была демонстрировать — цель достигнута и ошибка слежения за ценой уменьшилась.
Нелинейная же связь даже в случае с ЕМА работает нормально, и по факту адаптивно в зависимости от ошибки меняет период сглаживания. При больших значениях ошибки период сглаживания уменьшается относительно заданного Тс, при малых ошибках период сглаживания практически равен предустановленному Тс.
В общем, нам надо решить вопрос только с линейной обратной связи, и выбрать для этого в качестве исходного индикатора что-то посложнее ЕМА. Скажем фильтр низких частот (ФНЧ) 2-го порядка. Выражение для него будет иметь вид.

( Читать дальше )

Блог им. 3Qu |Совершенствуем Exponential Moving Average (EMA).

    • 16 января 2021, 00:04
    • |
    • 3Qu
  • Еще
На днях написал топик с описанием своей старой стратегии - Ретростратегия ретро ТС., снятой с эксплуатации в далеком 2014 г, которая, как оказалось, даже в упрощенном виде может работать и сегодня. Не собирался ее использовать, но в ходе обсуждений решил потратить на нее пару вечеров, восстановить по памяти до последней ее версии, и посмотреть, не стоит ли отложить текущие дела, и быстренько вывести ее на рынок.
В ходе восстановления пришлось также дорабатывать фильтры ФНЧ, простейшим из которых является ЕМА. Я дорабатывал свои фильтры, а вам покажу, что можно сделать с ЕМА, чтобы ее усовершенствовать и улучшить.
В комментариях к топику о ретростратегии упомянули некоего Jurik (jurikres.com) и его JMA. Думал, что он уже забыт, но, жив — курилка. То, что мы получим будет не хуже его индикаторов и подобрав периоды сглаживания можете сами в этом убедиться. Вообще, все поделки Jurikа — это где-то на уровне лабораторных работ студентов 4-го курса института по курсу ТАУиР. Наши сегодняшние тоже сложностью не отличаются, но может даже лучше, хотя бы потому, что не являются черными ящиками, и вы знаете как это устроено.

( Читать дальше )

Блог им. 3Qu |Классификация сделок в торговых системах 2 (пример).

    • 17 декабря 2020, 21:04
    • |
    • 3Qu
  • Еще
Был у меня топик  "Классификация сделок в торговых системах" — в общем, не зашел. Но некоторые плюсанули, вот, для некоторых и напишу пример конкретного применения. Рекомендую прочитать предыдущий, иначе можете не понять этот топик.
К счастью, у меня оказался рояль в кустах — вялотекущий проект системы прогнозирования котировок, вычисляющей прогноз изменения цены на интервале Т по значению и состоянию цены в момент t — dС(t+Т). Ну, и общая формула прогнозирующей системы:
                              dC(t+T) = C(t+T) — C(t),
где C(t) — цена в момент t.
График теста системы я показывал в комментариях к предыдущему топику вот он:

Классификация сделок в торговых системах 2 (пример).
По Х (Predict)  — прогноз изменение цены, по У (Real) — реальное изменение цены через время Т. Не обращайте внимание на значения осей, это не сами изменения цены, это нормированные к диапазону системы значения изменений цен.

( Читать дальше )

Блог им. 3Qu |Классификация сделок в торговых системах.

    • 14 декабря 2020, 20:54
    • |
    • 3Qu
  • Еще
Я в принципе не занимаюсь оптимизицией, как она обычно понимается, т.е. подбором параметров для получения высокой доходности. Я занимаюсь настройкой системы. Это, прежде всего, определение и уточнение границ области(ей), в которой производятся сделки и выход из них.
Для этого строятся всяческие графики, диаграммы и прочее, где отображаются сами сделки и их параметры.
Сделки разделяются на следующие классы:
1. системно правильные прибыльные
2. системно правильные убыточные
3. случайно прибыльные
4. случайно убыточные.
Сделки 1 и 2 производятся в рамках правил системы, и не требуют корректировки.
Сделки 3 и 4 производятся вне границ области, определенной системой, что требует уточнения логики системы с целью исключения этих сделок даже несмотря на их прибыльность.
Может также оказаться, что необходимо скорректировать область определения системы, и часть сделок 3 и 4 в последующем перекочуют в классификации в сделки 1 и 2.
Сделки классов 3 и 4 не всегда можно полностью исключить из системы, т.к. область определения может иметь достаточно сложную конфигурацию, и ее ограничение требует сложной логики. С этим, возможно, придется смирится.
Благодаря таким настройкам прибыль системы в итоге может даже уменьшится по сравнению с исходной, до настройки. Но мы тем самым почти гарантируем, что при следующих тестах, на других отрезках истории, и, в дальнейшем, на реале, прибыль останется стабильной.

Блог им. 3Qu |Карго-Культ в трейдинге.

    • 08 августа 2020, 19:22
    • |
    • 3Qu
  • Еще

Вы конечно знаете, что такое Карго-Культ, но, позволю себе напомнить.

В некую Банановую Республику продолжительное время поступает гуманитарная помощь развитых стран. В стране оборудуются аэродромы, куда приземляются самолеты со всякими ништяками — продовольствием, одеждой, товарами первой и второй необходимости и пр. Все счастливы.
В один прекрасный момент программа гум помощи заканчивается, и людям приходится самим заботится о себе. Они строят самолет из палок и веревок, ставят его на заброшенный аэродром, в надежде, что он привлечет железных птиц с ништяками. Потом вспоминают, что в хибаре сидел мужик в наушниках, и что-то говорил в микрофон, и тогда прилетали железные птицы. Аборигены собирают остатки брошенного оборудования, рисуют на ящиках шкалы и органы управления, назначают диспетчера, дают ему наушники из половинок кокосовых орехов и деревянный микрофон, и он часами говорит в него нечто подобное тому, что они слышали от диспетчера.
Словом, делают все тоже самое, что и проклятые пиндосы, но железные птицы по прежнему не летят на зов.
Это самый примитивный вариант Карго-Культа, но есть и более продвинутые и более цивилизованные его варианты.
Скажем, покупаем мы экскаватор, или угоняем самолет, и цап-царап, разбираем все это до винтиков, делаем чертежи, и пытаемся изготовить аналогичные изделия. Этот вариант уже лучше, — экскаватор может даже копать, а самолет летать. Но есть и недостатки — мы можем увидеть только внешнюю сторону, о технологиях изготовления мы можем только гадать, а можем даже и не догадываться о их существовании. Кроме того, для тех же самолетов, это будет отставание не менее чем на 10 лет.
Типичный пример Карго-Культа на гос уровне — тяжелый бомбардировщик Ту-4, полностью, вплоть до пепельницы и подстаканников, скопированный с американского



( Читать дальше )

....все тэги
UPDONW
Новый дизайн